import Graticule from 'ol/layer/Graticule'
// import GeoJSON from 'ol/format/GeoJSON'
// import VectorLayer from 'ol/layer/Vector'
// import VectorSource from 'ol/source/Vector'
import { Fill, Stroke, Style } from 'ol/style'
export default {
  data () {
    return {
      // oMap: null, // 地图对象
      // sSRS: 'EPSG:4326', // 空间参照系（Spatial Reference System) ?sRCS(Reference Coordinate System)
      gridLayer: null // 网格层
    }
  },
  // watch: {
  //   // watch
  // },
  // mounted () {
  //   // mounted
  // },
  methods: {
    /**
     * @description 创建gridLayer层，并添加到地图中
     * @param oMap {Object} 地图实例，
     * @return null
     */
    createGridLayer (oMap = this.imap) {
      // 需要一个vector的layer来放置图标
      this.gridLayer = new Graticule({
        // the style to use for the lines, optional.
        strokeStyle: new Stroke({
          color: 'rgba(255,120,0,0.9)',
          width: 2,
          lineDash: [0.5, 4]
        }),
        showLabels: true,
        visible: true,
        wrapX: false
      })
      // 添加图层名称
      this.gridLayer.set('name', 'gridLayer')
      oMap.addLayer(this.gridLayer)
      // 调整层级关系
      this.gridLayer.setZIndex(9)
    },

    /**
     * @description 销毁GridLayer层；
     * @param null
     * @return null
     */
    destroyGridLayer (oMap = this.imap) {
      if (this.gridLayer) {
        // const gridSource = this.gridLayer.getSource()
        // gridSource.clear()
        // 其他内容是否也要销毁
        oMap.removeLayer(this.gridLayer)
      }
    },

    /** 显示隐藏 + 透明度 + 样式调整 */

    /**
     * @description 网格样式设置；（样式配置很多，后续完成优化）
     * @param oStyle {Object}
     * @return null
     */
    setGridStyle (oStyle) {
      if (!this.oMap) return // 没有地图对象（没有初始化）
      if (this.heatmapLayer) {
        const heatSource = this.heatmapLayer.getSource()
        heatSource.clear()
        // 其他内容是否也要销毁
        this.oMap.removeLayer(this.heatmapLayer)
      }
    }
    // 当前方法
  }
}
